home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
TURB_VIS
/
TCYBER25
/
COMMON.ZIP
/
VGACGFIL.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1994-10-20
|
3KB
|
31 lines
{
Turbo Vision CyberTools 2.5
(C) 1994 Steve Goldsmith
All Rights Reserved
}
UNIT VGACGFIL ;{$I APP.INC} INTERFACE USES DOS , OBJECTS , {$IFDEF UseDLL} CYBERAPI ;{$ELSE} VGA ;{$ENDIF}
CONST CGFVERSION =$0100 ;CGFMEMALLOC =- 100 ;CGFNOTCGFFORMAT =- 101 ;TYPE CGFHEADER =RECORD VERSION , HEIGHT , STARTCHR ,
TOTALCHRS :WORD ;FILLER :ARRAY [ 0 .. 119 ] OF BYTE ;END ;PCHRGENFILE =^TCHRGENFILE ;
TCHRGENFILE =OBJECT (TOBJECT)IOERROR :INTEGER ;CHRTABLESIZE :WORD ;CGFFILE :FILE ;HEADER :CGFHEADER ;
CHRTABLEPTR :VGACHRTABLEPTR ;CONSTRUCTOR INIT ;DESTRUCTOR DONE ;VIRTUAL;PROCEDURE FREECHRTABLE ;PROCEDURE OPENREAD
(FILENAME :PATHSTR );PROCEDURE READCHRTABLE ;PROCEDURE OPENWRITE (FILENAME :PATHSTR );PROCEDURE WRITECHRTABLE ;
PROCEDURE GETFONTTABLE (CHRTABLE ,STARTCHR,TOTALCHRS,HEIGHT:WORD );END ;
IMPLEMENTATION USES MEMORY ;CONSTRUCTOR TCHRGENFILE.INIT ;BEGIN INHERITED INIT;HEADER.VERSION := CGFVERSION END ;
DESTRUCTOR TCHRGENFILE.DONE ;BEGIN {$I-}CLOSE (CGFFILE );{$I+}IOERROR := IORESULT ;INHERITED DONE END ;
PROCEDURE TCHRGENFILE.FREECHRTABLE ;BEGIN IF CHRTABLEPTR <> NIL THEN FREEMEM (CHRTABLEPTR , CHRTABLESIZE )END ;
PROCEDURE TCHRGENFILE.OPENREAD (FILENAME:PATHSTR);BEGIN ASSIGN (CGFFILE , FILENAME );{$I-}RESET (CGFFILE , 1 );
{$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKREAD (CGFFILE , HEADER , SIZEOF (HEADER ));{$I+}IOERROR :=
IORESULT ;IF IOERROR =0 THEN BEGIN IF HEADER.VERSION =CGFVERSION THEN BEGIN CHRTABLESIZE := HEADER.HEIGHT *
HEADER.TOTALCHRS ;CHRTABLEPTR := MEMALLOC (CHRTABLESIZE );IF CHRTABLEPTR =NIL THEN IOERROR := CGFMEMALLOC END ELSE
IOERROR := CGFNOTCGFFORMAT END END END ;PROCEDURE TCHRGENFILE.READCHRTABLE ;VAR O1lIII0lO0I1:WORD;BEGIN {$I-}SEEK
(CGFFILE , SIZEOF (HEADER ));{$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKREAD (CGFFILE , CHRTABLEPTR ^,
CHRTABLESIZE , O1lIII0lO0I1 );{$I+}IOERROR := IORESULT END END ;PROCEDURE TCHRGENFILE.OPENWRITE (FILENAME:PATHSTR);
BEGIN ASSIGN (CGFFILE , FILENAME );{$I-}REWRITE (CGFFILE , 1 );{$I+}IOERROR := IORESULT ;IF IOERROR =0 THEN
BEGIN {$I-}BLOCKWRITE (CGFFILE , HEADER , SIZEOF (HEADER ));{$I+}IOERROR := IORESULT END END ;
PROCEDURE TCHRGENFILE.WRITECHRTABLE ;VAR OI1OOO0OO0:WORD;BEGIN {$I-}SEEK (CGFFILE , SIZEOF (HEADER ));{$I+}IOERROR :=
IORESULT ;IF IOERROR =0 THEN BEGIN {$I-}BLOCKWRITE (CGFFILE , CHRTABLEPTR ^, CHRTABLESIZE , OI1OOO0OO0 );{$I+}IOERROR :=
IORESULT END END ;PROCEDURE TCHRGENFILE.GETFONTTABLE (CHRTABLE,STARTCHR,TOTALCHRS,HEIGHT:WORD);BEGIN HEADER.HEIGHT :=
HEIGHT ;HEADER.STARTCHR := STARTCHR ;HEADER.TOTALCHRS := TOTALCHRS ;CHRTABLESIZE := HEIGHT * TOTALCHRS ;CHRTABLEPTR :=
GETRAMTABLE (STARTCHR , TOTALCHRS , HEIGHT , VGACHRTABLELOC [ CHRTABLE ] )END ;END .